/**
 * 管理WEB应用缓存
 * @type {{clearAll: sessionManager.clearAll, clearItem: sessionManager.clearItem, get: sessionManager.get, set: sessionManager.set}}
 */
var sessionManager = {

  /**
   * 清除应用所有缓存
   */
  clearAll : function() {
    window.sessionStorage.clear();
  },

  clearItem : function(key) {
    window.sessionStorage.removeItem(key);
    return true;
  },

  /**
   * 获得缓存信息
   * @param key
   * @returns {*}
   */
  get:function(key){
    var d = new Date();
    var currentTime = parseInt(d.getTime()); // millisecond

    var storeData = window.sessionStorage.getItem(key);
    if(!storeData) {
      return '';
    }

    var storeDataFormat = JSON.parse(storeData);

    if(typeof storeDataFormat !== 'object' || typeof storeDataFormat.expireTime !== 'number') {
      return false;
    }

    console.log('====> Expire Time : '+storeDataFormat.expireTime + '; CurrentTime : '+currentTime);

    if(storeDataFormat.expireTime!==0 && storeDataFormat.expireTime<=currentTime) {
      window.sessionStorage.removeItem(key);
      return false;
    }

    return storeDataFormat.saveValue;
  },

  /**
   * 存储缓存数据
   * @param key
   * @param value
   * @param expires
   * @returns {boolean}
   */
  set:function(key,value,expires=3600) {

    if(typeof value === 'undefined' || !value ) {
      return false;
    }

    var d = new Date();
    var currentTime = parseInt(d.getTime());     // millisecond
    var expireTime = (expires===0)?0:currentTime+(expires*1000);
    var storeData = {
      saveTime : currentTime,
      saveValue : value,
      expireTime : expireTime
    };

    window.sessionStorage.setItem(key,JSON.stringify(storeData));

    return true;
  }
};

export {sessionManager};
